Outpainting এর মাধ্যমে ইমেজের সীমানা বৃদ্ধি করা

Latest Technologies - স্টেবল ডিফিউশন (Stable Diffusion) - Image Inpainting এবং Outpainting
127

Outpainting হলো Stable Diffusion-এর একটি ফিচার যা ইমেজের সীমানা বা সীমা বাড়িয়ে ইমেজকে এক্সটেন্ড করার জন্য ব্যবহৃত হয়। এটি একটি বিদ্যমান ইমেজের চারপাশে অতিরিক্ত কন্টেন্ট জেনারেট করতে সাহায্য করে, যার ফলে ইমেজের সীমানা প্রসারিত হয় এবং তা একটি নতুন ফর্ম বা কম্পোজিশন নিতে পারে। PyTorch এবং diffusers লাইব্রেরি ব্যবহার করে Outpainting করার প্রক্রিয়া নিচে ধাপে ধাপে দেখানো হলো।

ধাপ ১: প্রয়োজনীয় লাইব্রেরি ইন্সটল করা

pip install diffusers transformers accelerate scipy pillow

ধাপ ২: PyTorch এবং Diffusers ব্যবহার করে Outpainting করার উদাহরণ

import torch
from diffusers import StableDiffusionInpaintPipeline
from PIL import Image
import requests
from io import BytesIO

# ডিভাইস সেট করা (GPU থাকলে CUDA ব্যবহার করা হবে)
device = "cuda" if torch.cuda.is_available() else "cpu"

# Stable Diffusion Inpainting Pipeline লোড করা
pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-inpainting"
).to(device)

# একটি ইমেজ লোড করা (URL থেকে উদাহরণস্বরূপ)
url = "https://path_to_your_image.jpg"
response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")

# ইমেজের নতুন সীমানা নির্ধারণ করা
new_width = image.width + 256  # নতুন প্রস্থ
new_height = image.height + 256  # নতুন উচ্চতা

# নতুন ক্যানভাস তৈরি করা
canvas = Image.new("RGB", (new_width, new_height), (255, 255, 255))
canvas.paste(image, (128, 128))  # মূল ইমেজ সেন্টারে পেস্ট করা

# Outpainting এর প্রম্পট ডিফাইন করা
prompt = "A beautiful fantasy landscape extending beyond the current borders"

# Outpainting করে ইমেজ তৈরি করা
with torch.autocast("cuda"):
    result = pipe(prompt=prompt, image=canvas).images[0]

# আউটপেইন্টেড ইমেজ প্রদর্শন এবং সংরক্ষণ করা
result.show()
result.save("outpainted_image.png")

ব্যাখ্যা:

ইনপুট ইমেজ লোড:

  • একটি ইমেজ URL থেকে লোড করা হয়েছে এবং PIL লাইব্রেরি ব্যবহার করে ইমেজটি RGB ফরম্যাটে কনভার্ট করা হয়েছে।

নতুন ক্যানভাস তৈরি:

  • মূল ইমেজের সীমানা বাড়ানোর জন্য একটি বড় সাদা ক্যানভাস তৈরি করা হয়েছে। নতুন ইমেজের প্রস্থ ও উচ্চতা মূল ইমেজের চেয়ে ২৫৬ পিক্সেল করে বড় করা হয়েছে।
  • মূল ইমেজটি ক্যানভাসের কেন্দ্রে পেস্ট করা হয়েছে যাতে চারপাশে নতুন কন্টেন্ট জেনারেট করা যায়।

প্রম্পট ডিফাইন করা:

  • Outpainting করার জন্য একটি প্রম্পট ব্যবহার করা হয়েছে, যেমন: "A beautiful fantasy landscape extending beyond the current borders"। এই প্রম্পটটি ইমেজের সীমানায় নতুন কন্টেন্ট তৈরি করতে সাহায্য করে।

Stable Diffusion Inpainting Pipeline:

  • StableDiffusionInpaintPipeline PyTorch এবং diffusers লাইব্রেরি ব্যবহার করে মডেল লোড করা হয়েছে। এটি GPU তে (যদি উপস্থিত থাকে) মুভ করা হয়েছে।
  • মডেলটি প্রম্পট এবং ইমেজের মাধ্যমে Outpainting করে একটি নতুন ইমেজ জেনারেট করেছে।

আউটপেইন্টেড ইমেজ প্রদর্শন এবং সংরক্ষণ:

  • আউটপেইন্টেড ইমেজটি .show() ফাংশন দিয়ে প্রদর্শন করা হয়েছে এবং .save("outpainted_image.png") ফাংশন দিয়ে সেভ করা হয়েছে।

টিপস:

  • প্রম্পটের ডিটেইলস: প্রম্পটে সঠিকভাবে ডিটেইলস উল্লেখ করলে, মডেল আরও ভালোভাবে ইমেজের সীমানায় কন্টেন্ট জেনারেট করতে পারে। উদাহরণস্বরূপ: "extending the forest with tall trees and a river flowing by".
  • ক্যানভাসের সাইজ: আপনার আউটপেইন্টিং কতটা বড় হবে তা নির্ধারণ করতে ক্যানভাসের সাইজ পরিবর্তন করতে পারেন। তবে, খুব বড় ক্যানভাস দিলে মডেল বেশি রিসোর্স ব্যবহার করবে।
  • মডেলের ভার্সন: Inpainting বা Outpainting করার জন্য Stability AI-এর বিভিন্ন মডেল আছে, যেমন: stable-diffusion-2-inpainting, যা উন্নত মানের আউটপুট প্রদান করে। সঠিক মডেল সিলেক্ট করা গুরুত্বপূর্ণ।

উপসংহার

Outpainting এর মাধ্যমে ইমেজের সীমানা প্রসারিত করে একটি নতুন এবং বিস্তারিত কন্টেন্ট জেনারেট করা যায়। এটি ডিজিটাল আর্ট, কনসেপ্ট আর্ট, বা ফ্যান্টাসি ল্যান্ডস্কেপ তৈরি করার জন্য অত্যন্ত কার্যকরী। PyTorch এবং diffusers ব্যবহার করে সহজেই Outpainting সেটআপ করা এবং ব্যবহার করা সম্ভব।

Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...